#include "namedpipe.hpp"

// server: read 管理命名管道的整个生命周期
int main()
{
    NamedPipe fifo(comm_path, Creator);
    // 对于读端而言，如果我们打开文件，但是写还没来，读端就会阻塞在open调用中，直到对方打开
    // 这也变相的体现了：进程同步
    if (fifo.OpenToRead())
    {
        while (true)
        {
            std::string message;
            int n = fifo.ReadNamedPipe(&message);
            if (n > 0)
            {
                std::cout << "Client Say> " << message << std::endl;
            }
            else if(n == 0)
            {
                // 写端退出，读端会读到0
                std::cout << "Client quit, Sever Too!" << std::endl;
                break;
            }
            else
            {
                std::cout << "fifo.ReadNamedPipe Error!" << std::endl;
                break;
            }
        }
    }

    return 0;
}
